1. Field of the Invention
The present invention relates to layer 3 learning and layer 3 switching of data packets in a non-blocking network switch configured for switching data packets between subnetworks.
2. Background Art
Local area networks use a network cable or other media to link stations on the network. Each local area network architecture uses a media access control (MAC) enabling network interface devices at each network node to access the network medium.
The Ethernet protocol IEEE 802.3 has evolved to specify a half-duplex media access mechanism and a full-duplex media access mechanism for transmission of data packets. The full-duplex media access mechanism provides a two-way, point-to-point communication link between two network elements, for example between a network node and a switched hub.
Switched local area networks are encountering increasing demands for higher speed connectivity, more flexible switching performance, and the ability to accommodate more complex network architectures. For example, commonly-assigned U.S. Pat. No. 5,953,335 discloses a network switch configured for switching layer 2 type Ethernet (IEEE 802.3) data packets between different network nodes; a received data packet may include a VLAN (virtual LAN) tagged frame according to IEEE 802.1q protocol that specifies another subnetwork (via a router) or a prescribed group of stations. Since the switching occurs at the layer 2 level, a router is typically necessary to transfer the data packet between subnetworks.
There have been efforts to enhance the switching performance of a network switch to include layer 3 (e.g., Internet protocol) processing. Current efforts have focused on the network switch performing the layer 2 and layer 3 processing of the incoming packets centrally within the network. switch.
However, this approach may suffer serious drawbacks, as current layer 2 switches preferably are configured for operating in a non-blocking mode, where data packets can be output from the network switch at the same rate that the data packets are received. When the network switch is processing incoming data packets, layer 3 processing may overwhelm the network switch from being able to switch the incoming data packets at the wire rates (i.e. the network data rate).
There is a need for an arrangement that enables a network switch to provide layer 2 switching and layer 3 switching capabilities for 100 Mbps and gigabit links without blocking of the data packets.
There is also a need for an arrangement to enable a network switch port to instantaneously evaluate an incoming data packet and determine a layer 3 or higher protocol, to provide the associated switch fabric with sufficient time to process the incoming data packet according to the detected protocol.
There is also a need for an arrangement to enable a network switch port to evaluate an incoming data packet and determine whether the data packet is intended for a subnetwork connected to the network switch.
There is also a need for an arrangement to enable a non-blocking network switch to learn the associated layer 3 and layer 2 addresses for each network port of the network switch at the wire rate.
There is also a need for an arrangement to enable a network switch to evaluate an incoming data packet and determine an existing learned layer 3 address to provide layer 3 switching for the data packet within the network switch.
These and other needs are attained by the present invention, where a network switch for switching a data packet includes a plurality of ports for receiving a data packet. Each port includes a port filter configured for determining a presence of prescribed layer 3 switching information within the data packet. The network switch also includes a layer 3 switch logic for switching the data packet according to a layer 3 protocol in response to the presence of prescribed layer 3 switching information determined by the port filter. The network switch also includes a layer 2 switch logic for switching the data packet according to a layer 2 protocol in response to a lack of the presence of prescribed layer 3 switching information determined by the port filter. As a result, the port filter provides distributed layer 3 switching processing enabling the network switch to provide layer 3 and layer 2 switching capabilities for 100 Mbps or gigabit links without blocking of the data packets.
One aspect of the present invention provides a method of switching a data packet at a network switch port. The method includes receiving the data packet at least one port where the port includes a port filter, and determining by the port filter a presence of layer 3 switching information within the data packet. The method also includes switching the data packet according to a layer 3 protocol by a layer 3 switching logic in response to a presence of layer 3 switching information determined by the port filter. Alternatively, the method includes switching the data packet according to a layer 2 protocol by a layer 2 switching logic in response to an absence of layer 3 switching information determined by the port filter. The determination by the port filter of the presence or the absence of layer 3 switching information in the data packet provides distributed layer 3 processing among the network switch ports receiving the data packets, enabling the network switch to evaluate the data packets for layer 3 processing at wire data rates.
Additional advantages and novel features of the invention will be set forth in part in the description which follows and in part will become apparent to those skilled in the art upon examination of the following or may be learned by practice of the invention. The advantages of the present invention may be realized and attained by means of instrumentalities and combinations particularly pointed in the appended claims.